使用 ChromeDriver 進行測試


ChromeDriver 專案首頁

WebDriver 是一個開放原始碼工具,可用於自動化測試多個瀏覽器的網路應用程式。它提供導覽至網頁、使用者輸入、執行 JavaScript 等功能。ChromeDriver 是一個獨立伺服器,實作 Chromium 的 WebDriver 通訊協定。ChromeDriver 可用於 Android 上的 Chrome 和桌上型電腦上的 Chrome(Mac、Linux、Windows 和 ChromeOS)。

NW.js 提供自訂的 ChromeDriver,用於自動測試基於 NW.js 的應用程式。您可以搭配 selenium 等工具使用。

入門

下列工作流程使用 selenium-python 進行測試。您可以使用任何 Selenium 的語言埠來搭配 chromedriver 使用。

安裝

  • 從 NW.js 網站下載 ChromeDriver。它在 SDK 組建中。
  • 解壓縮套件,並將 chromedriver 放置在包含 NW.js 二進位檔的目錄下:Linux 為 nw、Windows 為 nw.exe,Mac 則為 node-webkit.app
  • 在您的專案中安裝 selenium-python
    pip install selenium
    

執行

假設您的應用程式顯示一個用於從遠端搜尋的表單。該頁面基本上類似於以下內容

<form action="http://mysearch.com/search" method="GET">
    <input type="text" name="q"><input type="submit" value="Submit">
</form>

撰寫一個 Python 腳本,用於自動填入搜尋方塊並提交表單

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("nwapp=/path/to/your/app")

driver = webdriver.Chrome(executable_path='/path/to/nwjs/chromedriver', chrome_options=chrome_options)

time.sleep(5) # Wait 5s to see the web page
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5) # Wait 5s to see the search result
driver.quit()

請參閱 http://selenium-python.readthedocs.org/ 以取得 selenium-python 的詳細文件。

上游 chromedriver 的修改

  • chromedriver 已修改,預設會在相同目錄中尋找 NW 可執行檔

  • 如果您想要將非切換引數傳遞至命令列,則會新增一個額外的選項 nwargs

    import time
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    chrome_options = Options()
    chrome_options.add_argument("nwapp=/path/to/your/app")
    chrome_options.add_experimental_option("nwargs", ["arg1", "arg2"])
    
    driver = webdriver.Chrome(executable_path='/path/to/nwjs/chromedriver', chrome_options=chrome_options)